function timeFn1(value) {

	let day = parseInt(value / 60 / 24)
	let hour = parseInt(value / 60 % 24)
	let min = parseInt(value % 60)

	if (value < 60) {
		return value + '分钟'
	} else if (hour > 0 && day <= 0) {
		return hour + '小时' + min + '分钟'
	} else if (hour == 0 && day > 0) {
		return day + '天' + hour + '小时' + min + '分钟'
	}

}


// 计算两个时间差 dateBegin 结束时间
function timeFn(dateBegin) {
	//如果时间格式是正确的，那下面这一步转化时间格式就可以不用了
	var dateEnd = new Date(); //获取当前时间
	var dateDiff = dateBegin - dateEnd.getTime(); //时间差的毫秒数

	var dayDiff = Math.floor(dateDiff / (24 * 3600 * 1000)); //计算出相差天数
	var leave1 = dateDiff % (24 * 3600 * 1000) //计算天数后剩余的毫秒数
	var hours = Math.floor(leave1 / (3600 * 1000)) //计算出小时数
	//计算相差分钟数
	var leave2 = leave1 % (3600 * 1000) //计算小时数后剩余的毫秒数
	var minutes = Math.floor(leave2 / (60 * 1000)) //计算相差分钟数


	if (hours == 0) {
		return {
			time: minutes + "分钟",
			overtime: minutes < 0,
		}

	} else {

		return {

			time: hours + '小时' + minutes + "分钟",
			overtime: minutes < 0,




		}

	}
}
// 获取地理位置解析完成的
async function getLocationOnce() {
	const location = await getLocation()
	if (!location) return false
	const res = await locationReverseInfoFix(location)
	return res // 北京市东城区东华门街道正义路北京市人民政府(旧址)
}

let isHighAccuracy = true
if (uni.getSystemInfoSync().platform == "ios") {
	isHighAccuracy = false
}
// 获取地理位置(经纬度) 参照uniapp官网 https://uniapp.dcloud.io/api/location/location.html 
async function getLocation(typ = 1) {

	//typ==1 获取全部信息
	//typ==2 获取经度
	//typ==3 获取纬度
	// // #ifdef MP-WEIXIN
	// if (!(await judgeAuthScope())) return false // 是否有定位权限判断并进行处理
	// // #endif
	// #ifdef APP
	// console.log('app')
	if (!(await checkOpenGPSService())) return false 
	// #endif
	return new Promise((resolve, reject) => {
		// console.log('是否开启高精度定位',isHighAccuracy)
		uni.getLocation({
			type: 'gcj02', // 默认为 wgs84 返回 gps 坐标，gcj02 返回国测局坐标
			geocode: true, //设置该参数为true可直接获取经纬度及城市信息
			isHighAccuracy: isHighAccuracy, // 开启高精度定位 
			highAccuracyExpireTime: 3000, // 高精度定位超时时间(ms)，指定时间内返回最高精度，该值3000ms以上高精度定位才有效果

			success: function(data) {
				// console.log('获取位置信息成功',data)
				typ == 1 ? resolve(data) : typ == 2 ? resolve(data.longitude) : resolve(data
					.latitude)
			},
			fail: function(err) {
				uni.showToast({
					title: '获取位置信息失败',
					icon: 'none'
				});
				console.log('失败信息', err)
				reject(err)
			}
		});
	})
}

function checkOpenGPSService() {

	return new Promise(resolve => {
		let systemType = uni.getSystemInfoSync().platform;
		// 安卓
		if (systemType === 'android') {
			var context = plus.android.importClass('android.content.Context');
			var locationManager = plus.android.importClass('android.location.LocationManager');
			var main = plus.android.runtimeMainActivity();
			var mainSvr = main.getSystemService(context.LOCATION_SERVICE);
			if (!mainSvr.isProviderEnabled(locationManager.GPS_PROVIDER)) {
				resolve(false)
				uni.showModal({
					title: '提示',
					content: '请打开定位服务功能',
					showCancel: false,
					success() {
						if (!mainSvr.isProviderEnabled(locationManager.GPS_PROVIDER)) {
							var Intent = plus.android.importClass('android.content.Intent');
							var Settings = plus.android.importClass('android.provider.Settings');
							var intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
							main.startActivity(intent); // 打开系统设置定位服务功能页面
						} else {
							console.log('定位服务功能已开启');

						}
					}
				})

			} else {
				resolve(true)
			}
		}else if (systemType === 'ios') {
		
			        var cllocationManger = plus.ios.import("CLLocationManager");
			        var enable = cllocationManger.locationServicesEnabled();
			        var status = cllocationManger.authorizationStatus();
			        plus.ios.deleteObject(cllocationManger);
			        if (enable && status != 2) {
			            resolve(true)
			        } else {
			            resolve(false)
			            uni.showModal({
			                title: '提示',
			                content: '请前往设置-隐私-定位服务打开定位服务功能',
			                showCancel: false, // 不显示取消按钮
			                success() {
			                    var UIApplication = plus.ios.import("UIApplication");
			                    var application2 = UIApplication.sharedApplication();
			                    var NSURL2 = plus.ios.import("NSURL");
			                    // var setting2 = NSURL2.URLWithString("prefs:root=LOCATION_SERVICES");
			                    // var setting2 = NSURL2.URLWithString("App-Prefs:root=LOCATION_SERVICES");
			                     var setting2 = NSURL2.URLWithString("app-settings:");
			                    //var setting2 = NSURL2.URLWithString("App-Prefs:root=Privacy&path=LOCATION");
			                    // var setting2 = NSURL2.URLWithString("App-Prefs:root=Privacy&path=LOCATION_SERVICES");
			                    application2.openURL(setting2);
			                    plus.ios.deleteObject(setting2);
			                    plus.ios.deleteObject(NSURL2);
			                    plus.ios.deleteObject(application2);
			                }
			            });
			        }
		}
	})

}


// wx判断用户授权信息
function judgeAuthScope() {
	return new Promise(resolve => {
		uni.authorize({
			scope: 'scope.userLocation',
			success() {
				console.log('用户已授权');
				resolve(true)
			},
			fail(e) {
				if (e.errMsg.includes('auth deny')) {
					// authorize:fail 系统错误，错误码：-12006,auth deny , 用户拒绝错误代码
					// 用户未授权
					uni.showModal({
						title: '授权提醒',
						content: '请授权地理位置信息，以便为您提供更好的服务',
						cancelText: "取消",
						confirmText: '授权',
						success: function(showres) {

							if (showres.confirm) {
								// 打开设置
								uni.openSetting({
									success(res) {
										// console.log(res.authSetting)
									},
									fail(err) {
										console.log(err);
									}
								});
								// console.log('用户点击确定');
							} else if (showres.cancel) {
								// console.log('用户点击取消');
							}
						}
					})
				} else {
					uni.showToast({
						title: '未获取到地理位置授权',
						icon: 'none'
					});
				}
				console.log('用户未授权', e);
				resolve(false)
			}
		})
	})
}
// 经纬度转换成三角函数中度分表形式。
function rad(d) {
	return d * Math.PI / 180.0;
}


// 根据经纬度计算距离，参数分别为第一点的纬度，经度；第二点的纬度，经度
function getDistance(lat1, lng1, lat2, lng2) {
	var radLat1 = rad(lat1);
	var radLat2 = rad(lat2);
	var a = radLat1 - radLat2;
	var b = rad(lng1) - rad(lng2);
	var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) +
		Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));
	s = s * 6378.137; // EARTH_RADIUS;
	s = Math.round(s * 10000) / 10000; //输出为公里
	var distance = s;
	var distance_str = "";
	// if (parseInt(distance) >= 1) {
	//     distance_str = distance.toFixed(1) + "km";
	// } else {
	//     distance_str = distance * 1000 + "m";
	// }
	distance_str = distance * 1000;
	return distance_str;
}
export default {
	timeFn,
	timeFn1,
	getDistance,
	getLocation,
}